LINK68: An M6800 Linking Loader By Robert D. Grappel and Jack E. Hemenway Copyright 1978 ISBN: 0-931718-09-0 From Back of LINK68 Book ------------------------ LINK68 is a one pass linking loader which allows separately translated relocatable object modules to be loaded and linked together to form a single executable load module. It produces a Load Map and a load module in Motorola MIKBUG loader format. The Linking Loader requires 2K bytes of memory, a system console such as a Teletype, a system monitor such as the Motorola MIKBUG read only memory program or the ICOM Floppy Disk Operating System (FDOS), and some form of mass file storage such as dual cassette recorders or a floppy disk. It was the express purpose of the authors of this book to provide everything necessary so that the user can easily learn what he or she needs to know about the system. By providing not only the source code and PAPERBYTE bar code listings, but also a detailed description of the major routines of the Linking Loader, they intend to provide the user with an opportunity to learn about the nature of linking loader design and implementation, as well as simply acquiring a useful software tool. Table of Contents ----------------- To Begin With The Linking Loader Interfacing and Using the Linking Loader IO Interface Conventions Tape Driver Routines Disk Driver Routines Execution of the Linking Loader Input Relocatable File Format Relocatable Input Tape Format Appendices Appendix A: Error Messages Appendix B: Capacities Appendix C: Notes from a User: Implementation of LINK68 Appendix D: LINK68 Assembly Language Object Code in Absolute Hexadecimal Format Appendix E: PAPERBYTE Bar Code Representation of LINK68 in Absolute Format Appendix F: Input and Output Routines for LINK68 in Absolute Format with PAPERBYTE Bar Code Representation Appendix G: Assembly Language Source Listing of LINK68 Appendix H: ASCII Text Listing of the Relocatable Format Object Code for LINK68 Appendix I: PAPERBYTE Bar Code Representation of Relocatable Format Object Code for LINK68 Appendix J: Cassette Tape IO Listing Appendix K: ICOM Floppy Disk IO Listing Index [Introduction] To Begin With... ------------------------------- LINK68 is a one pass linking loader used to load and link object files produced by the Resident 6800 Macro Assembler RA6800ML (available as a PAPERBYTE book). It allows separately translated relocatable object modules to be loaded and linked together to form a single executable load module. LINK68 produces a Load Map and a load module in Motorola MIKBUG loader format. The Linking Loader requires 2K bytes of memory, a system console such as a Teletype, a system monitor such as the Motorola MIKBUG read only memory program of the ICOM Floppy Disk Operating System (FDOS), and some form of mass file storage such as dual cassette recorders of a floppy disk. A system monitor other than those mentioned above could be used by changing two IO jumps in the Linking Loader (a jump to the terminal character input routine INEEE and a jump to the terminal character output routine OUTEEE) and by supplying functionally equivalent IO routines for the user's specific system. This book is divided into three major sections. THE LINKING LOADER provides detailed descriptions of the major routines of the Linking Loader. Included are details about the various routine linkages, pointers, flags, etc. This section provides the necessary background for using the Linking Loader as well as understanding its basic operations. INTERFACING AND USING THE LINKING LOADER gives information about the IO conventions used, execution of the Linking Loader, and the input file format. Naturally, the exact IO interface needed for using the Linking Loader depends on the actual configuration of the user's system. Therefore, tips are given on how to design IO routines or modify those provided as examples to fit the user's system. This section concludes with a discussion of the methods of preparing the loader for routine use in your system by reading it in and relocating it with a "bootstrap" version pre-linked in absolute format. The third section is the set of appendices which contain error messages generated by the Linking Loader, the Linking Loader and sample IO driver assembly listings, the bar code representations of the various relocatable object modules of the loader, and an implementation guide for bootstrapping LINK68 and linking loader and IO routines in absolute formats for the bootstrap process. Finally, a detailed INDEX is included for quick cross-reference to the Linking Loader's routines. In this book is what we believe to be a complete set of documentation for the Linking Loader. Every flowchart, every listing, every item was included for one purpose: to provide the user with everything needed for the use or modification of the Linking Loader. In addition, it was the express purpose of the authors to provide everything necessary so that the user can easily learn what he or she needs to know about the system. By providing not only the source code and bar code listings, but also a detailed description of the major routines of the Linking Loader, we intend to provide the user with an opportunity to learn about the nature of linking loader design and implementation, as well as simply acquiring a useful software tool. It is through this kind of encouragement that we hope to advance the state of the art of home computing. Robert D. Grappel Jack E. Hemenway